import axios, { AxiosRequestConfig } from 'axios'

import './__mock__'

/**
 * 查询数据列表
 */
export interface IEventTemplateEnableRes {
  /**
   * 启用状态: 0-否 1-是
   */
  enableFlag?: number
  /**
   * 轨迹模板ID
   */
  eventTemplateId?: number
  /**
   * 头程运输方式 1.OCEAN 2.AIR 3.GROUND_TRUCK 4.GROUND_TRAIN
   */
  firstLines?: number[]
  /**
   * 地点类型: 1-始发地 2-集货仓 3-起运港 4-目的港 5-中转仓 6-目的地
   */
  locationType?: number
  /**
   * 消息类型: 1-Information 2-Notification 3-Alert
   */
  messageType?: number
  /**
   * 轨迹事件原因码
   */
  reasonCode?: string
  /**
   * ShipTrack要求: 1-必须 2-可选
   */
  shipTrackRequire?: number
  /**
   * 状态组下的具体状态主状态-11.待处理 12.待发货 13.待离港 14.运输中 15.待提取 16.中转中 17.派送中 18.已签收 19.已取消; 报关-21.待审核
   * 22.待申报 23.申报中 24.查验中 25.已放行 26.已退单 27.已取消; 清关-31.待审核 32.待申报 33.申报中 34.待支付关税 35.查验中 36.已放行
   * 37.已退运 38.已取消; 预约-41.待处理 42.待预约 43.待确认 44.已确认 45.已签收 46.已回传 47.已拒收 48.已取消; 保险-51.待确认
   * 52.待投保 53.已投保 54.已拒绝 55.已取消; 异常-61.待分配 62.调查中 63.处理中 64.已解决 65.已关闭 66.已取消
   */
  status?: number
  /**
   * 轨迹事件状态码
   */
  statusCode?: string
  /**
   * 状态组 1.主状态 2.报关 3.清关 4.预约 5.保险 6.异常
   */
  statusGroup?: number
  /**
   * 尾程运输方式: 1-快递 2-卡车 3-Amazon Freight
   */
  tailLines?: number[]
  /**
   * 中文描述
   */
  templateCn?: string
  /**
   * 英文描述
   */
  templateEn?: string
  /**
   * 时间戳说明
   */
  timestampDescription?: string
  /**
   * '修改时间'
   */
  updateAt?: string
  /**
   * 客户可见: 0-否 1-是
   */
  visibleFlag?: number
}

/** 查询事件模板列表 */
export const apiGetEventList = async (signal?: AxiosRequestConfig['signal']): Promise<IEventTemplateEnableRes[]> => {
  return axios.post(`/tmsapi/event_template/enable/list`, {}, { signal }).then(res => res.$data)
}
